<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
  </head>

  <body>
    <p id="output"></p>
    <p id="output3"></p>
    <script>
      // 定义函数
      function greet(name) {
        document.write("Hello, " + name + "<br>");
      }

      // 以“Seagull”作为参数调用greet函数
      greet("Seagull");

      // 定义函数
      function add(num1, num2, num3) {
        var total = num1 + num2 + num3;
        document.write(total + "<br>");
      }

      // 调用函数
      add(5, 20, 10); // 输出: 35
      add(-5, 8, 7); // 输出: 10

      //定义函数
      function showFullname(fName, lName) {
        document.write(fName + " " + lName + "<br>");
      }

      // 调用函数
      showFullname("Kavy", "Mark"); // 输出: Kavy Mark
      showFullname("John"); // 输出: John undefined

      //默认参数
      function myFunc(a, b = 20) {
        // 如果未传递或未定义参数b，则b为20
        return a + b;
      }

      myFunc(10, 5); // 返回 15
      myFunc(10); // 返回 30

      //Arguments对象
      document.write(getMax(9, 15, 61, 3) + "<br>");

      function getMax() {
        let max = 0;
        for (let i = 0; i < arguments.length; i++) {
          if (arguments[i] > max) {
            max = arguments[i];
          }
        }
        return max;
      }
      //以下示例返回所有传递的参数总和
      document.write(getSum(9, 15, 61, 3) + "<br>");

      function getSum() {
        let sum = 0;
        for (let i in arguments) {
          sum += arguments[i];
        }
        return sum;
      }

      //reset参数
      function sum(...arr) {
        let sum = 0;
        for (let p of arr) {
          sum += p;
        }
        return sum;
      }

      document.getElementById("output3").innerHTML =
        sum(1, 2) + "<br>" + sum(1, 2, 3, 4) + "<br>" + sum(1, 2, 3, 4, 5, 6);
    </script>
  </body>
</html>
